package com.oly.cms.admin.service;

import com.oly.cms.common.domain.VisibleParam;
import com.oly.cms.common.domain.entity.CmsCategory;
import java.util.List;

public interface ICmsCategoryService {
    /**
     * 添加类目
     * 
     * @param cmsCategory
     * @return
     */
    int insertCmsCat(CmsCategory cmsCategory);

    /**
     * 修改类目
     * 
     * @param CmsCategory
     * @return
     */
    int updateCmsCat(CmsCategory cmsCategory);

    /**
     * 删除单个类目导航
     * 
     * @param catId
     * @return
     */
    int deleteCmsCatById(Long catId);

    /**
     * 获取列表
     * 
     * @param cmsCategory
     * @return
     */
    List<CmsCategory> listCmsCatByCat(CmsCategory cmsCategory);

    /**
     * 获取一条类目 所有字段
     * 
     * @param catId
     * @return
     */
    CmsCategory selectCmsCatById(long catId);

    /**
     * 验证同类目下类目名唯一
     * 是否存在子节点
     * 
     * @param cmsCategory
     * @param node
     * @return
     */
    boolean checkCatUnique(CmsCategory cmsCategory, boolean node);

    /**
     * 统计关联文章
     * 
     * @param catId
     * @return
     */
    int countArticleByCatId(Long catId);

    /**
     * 获取类目列表通过文章id 文章关联类目
     * 
     * @param vParam
     * @return
     */
    List<CmsCategory> listCmsCatByArticleId(VisibleParam vParam);

    /**
     * 更新分类状态
     * 
     * @param cmsCategory
     * @return
     */
    int updateChildCatVisible(CmsCategory cmsCategory);

}
